package com.main.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.main.bean.Task;
import com.main.dao.TaskDao;

@Service("taskService")
@Transactional
public class TaskService {

	@Autowired
	private TaskDao taskDao;
	
	/**
	 * 获取任务
	 * @param Task
	 * @return
	 */
	public Task getTaskByNameOrByCornNameOrId(Task task){
		return taskDao.getTaskByNameOrByCornNameOrId(task);
	}
	/**
	 * 获取任务
	 * @param Task
	 * @return
	 */
	public Task getTaskByName(Task task){
		return taskDao.getTaskByName(task);
	}
	
	/**
	 * 获取任务
	 * @param Task
	 * @return
	 */
	public Task getTaskByCornName(Task task){
		return taskDao.getTaskByCornName(task);
	}
	
	
	/**
	 * 查询是否存在任务
	 * @param Task
	 * @return
	 */
	public int getTaskCount(Task task){
		return taskDao.getTaskCount(task);
	}
	/**
	 * 添加任务
	 * @param Task
	 * @return
	 */
	public int addTask(Task task){
		return taskDao.add(task);
	}
	
	/**
	 * 获取所有新添加的任务的名字
	 * @return
	 */
	public List<Map<String,Object>>getAllInitTaskName(){
		return taskDao.getAllInitTaskName();
	}
	
	/**
	 * 获取所有正在执行的任务
	 * @return
	 */
	public List<Task>getAllTask(){
		return taskDao.getAllTask();
	}
	
	/**
	 * 更新任务数据
	 * @param task
	 * @return
	 */
	public int updateTask(Task task){
		return taskDao.updateTask(task);
	}
	
	/**
	 * 更新到执行状态
	 * @param task
	 * @return
	 */
	public int updateTaskaddExcute(Task task){
		return taskDao.updateTaskaddExcute(task);
	}
	
	/**
	 * 更新到暂停状态
	 * @param task
	 * @return
	 */
	public int updateTaskPauseExcute(Task task){
		return taskDao.updateTaskPauseExcute(task);
	}
	
	/**
	 * 更新到执行状态
	 * @param task
	 * @return
	 */
	public int delTaskaddExcute(Task task){
		return taskDao.delTask(task);
	}
	
	public Map<String,Object>getPage(String draw,String recordsFilteredSql,String recordsTotalSql,String sql){
		String recordsTotal=taskDao.getCountPage(recordsTotalSql);
		String recordsFiltered=taskDao.getCountPage(recordsFilteredSql);
		Map<String,Object>result=new HashMap<String,Object>();
		result.put("data", taskDao.getPageAllTask(sql));
		result.put("recordsTotal", recordsTotal);
		result.put("recordsFiltered", recordsFiltered);
		result.put("draw",draw);
		return result;
	}
}
